bitkeeper revision 1.339.1.12 (3f132a3btAOPZiDtrKz16GwA9Wr_ow)
authorkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>
Mon, 14 Jul 2003 22:10:03 +0000 (22:10 +0000)
committerkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>
Mon, 14 Jul 2003 22:10:03 +0000 (22:10 +0000)
memory.c, fault.c, i386_ksyms.c:
  Simplified Xenolinux mm code by removing some 386-only functionality.

xenolinux-2.4.21-sparse/arch/xeno/kernel/i386_ksyms.c
xenolinux-2.4.21-sparse/arch/xeno/mm/fault.c
xenolinux-2.4.21-sparse/mm/memory.c

index 67fa16c4e179725398340da97a5799ce26082629..b62c171b3cc7a8b0793c8bd85bfa5b09940c0f47 100644 (file)
@@ -53,7 +53,6 @@ EXPORT_SYMBOL(drive_info);
 
 /* platform dependent support */
 EXPORT_SYMBOL(boot_cpu_data);
-EXPORT_SYMBOL(__verify_write);
 EXPORT_SYMBOL(dump_thread);
 EXPORT_SYMBOL(dump_fpu);
 EXPORT_SYMBOL(dump_extended_fpu);
index fb11ea03c48b71ef5b6aa569afd8e491be0b2f4e..d4d24d20853114e89e71685067466e59c3bb86cd 100644 (file)
@@ -29,71 +29,6 @@ extern void die(const char *,struct pt_regs *,long);
 
 pgd_t *cur_pgd;
 
-/*
- * Ugly, ugly, but the goto's result in better assembly..
- */
-int __verify_write(const void * addr, unsigned long size)
-{
-       struct vm_area_struct * vma;
-       unsigned long start = (unsigned long) addr;
-
-       if (!size)
-               return 1;
-
-       vma = find_vma(current->mm, start);
-       if (!vma)
-               goto bad_area;
-       if (vma->vm_start > start)
-               goto check_stack;
-
-good_area:
-       if (!(vma->vm_flags & VM_WRITE))
-               goto bad_area;
-       size--;
-       size += start & ~PAGE_MASK;
-       size >>= PAGE_SHIFT;
-       start &= PAGE_MASK;
-
-       for (;;) {
-       survive:
-               {
-                       int fault = handle_mm_fault(current->mm, vma, start, 1);
-                       if (!fault)
-                               goto bad_area;
-                       if (fault < 0)
-                               goto out_of_memory;
-               }
-               if (!size)
-                       break;
-               size--;
-               start += PAGE_SIZE;
-               if (start < vma->vm_end)
-                       continue;
-               vma = vma->vm_next;
-               if (!vma || vma->vm_start != start)
-                       goto bad_area;
-               if (!(vma->vm_flags & VM_WRITE))
-                       goto bad_area;;
-       }
-       return 1;
-
-check_stack:
-       if (!(vma->vm_flags & VM_GROWSDOWN))
-               goto bad_area;
-       if (expand_stack(vma, start) == 0)
-               goto good_area;
-
-bad_area:
-       return 0;
-
-out_of_memory:
-       if (current->pid == 1) {
-               yield();
-               goto survive;
-       }
-       goto bad_area;
-}
-
 extern spinlock_t timerlist_lock;
 
 /*
index d3833e4bf36d6c462b965f936e838cb6ecbe2d21..f06ad4b77d65ec1cc4bf173574c9f496b8f68082 100644 (file)
@@ -1381,15 +1381,6 @@ int handle_mm_fault(struct mm_struct *mm, struct vm_area_struct * vma,
        pgd_t *pgd;
        pmd_t *pmd;
 
-#if defined(CONFIG_XENO_PRIV)
-       /* Take care of I/O mappings right here. */
-       if (vma->vm_flags & VM_IO) {
-               if (write_access && !(vma->vm_flags & VM_WRITE))
-                       return -1;
-               return 1;
-       }
-#endif
-
        current->state = TASK_RUNNING;
        pgd = pgd_offset(mm, address);